/**
*  
* @Function 数据催收服务 
* @ProjectName credit-data-platform 
* @PackageName com.py.credit.service    
* @FileName TaskRemindService.java    
* @Date 2018年5月9日上午10:28:47
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/
package com.py.credit.service;

import java.util.List;
import java.util.Map;

import com.py.credit.entity.SubscribeCount;
import com.py.credit.entity.SubscriptionRelation;
import com.py.credit.entity.SysUser;
import com.py.credit.entity.TaskRemind;
import com.py.framework.core.common.Page;

/**
 * 
 * @Function 数据催收服务
 * @ClassName TaskRemindService
 * @Date 2018年5月9日 上午10:28:47
 * @Author Min DongXv
 * 
 */
public interface TaskRemindService {

	/**
	 *
	 * @Function 分页查询数据催收信息
	 * @FileName TaskRemindService.java
	 * @MethodName selectTaskRemindByConditionForPage
	 * @param columns
	 * @param additionalColumns
	 * @param condition
	 * @param page
	 * @param type
	 *            类型 C:数据催收 T:任务提醒
	 * @return
	 * @Date 2018年5月9日 上午10:33:29
	 * @Author Min DongXv
	 *
	 */
	public List<Map<String, Object>> selectTaskRemindByConditionForPage(List<String> columns,
			String[] additionalColumns, String condition, Page page, String type, SysUser userInfo);

	/**
	 *
	 * @Function 新增任务提醒
	 * @FileName TaskRemindService.java
	 * @MethodName addTaskRemind
	 * @param taskRemind
	 * @return
	 * @Date 2018年5月9日 上午10:33:29
	 * @Author Min DongXv
	 *
	 */
	public int addTaskRemind(TaskRemind taskRemind);

	/**
	 * 
	 * @Function 获取两年内订阅人上报的数据统计
	 * @FileName TaskRemindService.java
	 * @MethodName selectSubscriberIdForYear
	 * @return
	 * @Date 2018年5月11日 上午9:57:42
	 * @Author Min DongXv
	 *
	 */
	List<SubscribeCount> selectSubscriberIdForYear();

	/**
	 * 
	 * @Function 获取所有更新频率为月季年的订阅人和资源关系
	 * @FileName TaskRemindService.java
	 * @MethodName selectAllSubscriptionRelation
	 * @return
	 * @Date 2018年5月11日 上午10:49:33
	 * @Author Min DongXv
	 *
	 */
	List<SubscriptionRelation> selectAllSubscriptionRelation();

	/**
	 * 
	 *
	 * @Function 更新任务提醒数据状态
	 * @FileName TaskRemindService.java
	 * @MethodName updateTaskRemind
	 * @param id
	 * @Date 2018年5月11日 下午4:39:37
	 * @Author Min DongXv
	 *
	 */
	void updateTaskRemind(Integer id, String status);

	/**
	 * 
	 * @Function 数据处理
	 * @FileName TaskRemindService.java
	 * @MethodName dataRemind
	 * @return
	 * @Date 2018年5月11日 上午9:57:42
	 * @Author Min DongXv
	 *
	 */
	void dataRemind(int advanceDay, String type);

	/**
	 * 
	 * @Function 部门绩效统计未完成部门进行数据催收信息发送
	 * @FileName TaskRemindService.java
	 * @MethodName dataUnfinishRemind
	 * @Date 2018年7月20日 下午3:07:52
	 * @Author Min DongXv
	 *
	 */
	void dataUnfinishRemind();
}
